Resolution independent vector display of internet content

ABSTRACT

Apparatus, methods and software for creating resolution-independent vector display of Internet (Web) content to allow Web pages to be scaled (zoomed) and panned for better viewing and/or to fit any resolution or screen size. According to one aspect, novel client-side processing of Web content is provided that translates portions of Web content requested by a user from an original format to a scalable vector-based format. The scalable vector-based format enables the Web content to be rendered by the client such that the rendered display substantially retains an original page layout defined by the original format, while supporting scaling and panning of the Web content in real-time.

RELATED APPLICATIONS

This application is a Continuation of U.S. U.S. Non-provisionalapplication Ser. No. 09/878,097, filed Jun. 8, 2001, entitled“RESOLUTION INDEPENDENT VECTOR DISPLAY OF INTERNET CONTENT,” which is aContinuation-in-Part of U.S. Non-provisional application Ser. No.09/825,511, filed Apr. 7, 2001, entitled “RESOLUTION INDEPENDENT VECTORDISPLAY OF INTERNET CONTENT,” the benefit of the filing date of which isclaimed under 35 U.S.C. § 120. This application further claims thebenefit of the filing dates of U.S. Provisional Application No.60/211,019, filed Jun. 12, 2000, entitled “METHOD AND SYSTEM FORRESOLUTION INDEPENDENT DISPLAY OF HTML AND XML CONTENT” and U.S.Provisional Application No. 60/217,345, filed Jul. 11, 2000, entitled“METHOD AND SYSTEM FOR SELECTION, RETRIEVAL, AND CONVERSION OF COMPUTERCONTENT TO VECTOR FORMAT FOR RESOLUTION INDEPENDENT DISPLAY,” under 35U.S.C. § 119(e). This application also contains subject matter relatedto Divisionals (of Ser. No. 09/878,097) U.S. Non-provisional applicationSer. Nos. 11/045,757 and 11/045,649, both entitled “RESOLUTIONINDEPENDENT VECTOR DISPLAY OF INTERNET CONTENT,” and filed Jan. 28,2005.

COPYRIGHT NOTICE

Contained herein is material that is subject to copyright protection.The copyright owner has no objection to the facsimile reproduction ofthe patent disclosure by any person as it appears in the Patent andTrademark Office patent files or records, but otherwise reserves allrights to the copyright whatsoever.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The invention relates generally to translation of Internet and WorldWide Web content to scalable vector representation. More particularly,the invention relates to apparatus and methods for zoom enabling thedisplay of content in an Internet information browser by retrieving andtranslating HyperText Markup Language (HTML), eXtensible Markup Language(XML), and other Internet content to vector representations of thatcontent.

2. Description of the Related Art

Text only Internet information browsers began as a project at the CERN,European Organization for Nuclear Research, facility in GenevaSwitzerland. From its inception the intent was to provide a mesh or webof access to data with a common user interface. Browsers moved from theacademic environment when NCSA, the National Center for SupercomputingApplications at the University of Illinois in Urbana-Champaign developedMosaic, an Internet information browser and World Wide Web client.

Internet content is stored in multiple file formats. These formatsinclude HTML (Hyper Text Markup Language) and XML (eXtended MarkupLanguage) as well as graphic file format GIF (Graphics InterchangeFormat) and JPEG (Joint Photographic Experts Group). These four fileformats constitute the majority of Internet content. Font size andresizing display area for content can alter the size of the display ofInternet content in existing browsers. The majority of Internet contentdisplays as a flat single resolution with no browser support for zoom.

Much of the Internet content has been designed for display on desktopcomputers with a single target resolution. Even though HTML has theability to adapt to changes in screen resolution, major Internet contentproviders have chosen to create their Web pages using fixed resolutionstructures, such as tables. This gives them the ability to control thelook and feel of their Web sites. This fixed resolution approach hasevolved to the point that the fixed resolution layout of Web pages hasbecome the most common method to brand or uniquely identify Web sites.While this fixed resolution approach is good for site branding andproduct differentiation it does present a daunting technical problem fordisplay of Internet content (designed for desktop computers) on smallscreen, low resolution, or different aspect ratio devices, such as cellphones and hand held computers.

BRIEF SUMMARY OF THE INVENTION

Techniques for supporting resolution-independent vector display ofInternet (Web) content to allow Web pages to be scaled (zoomed) andpanned for better viewing and/or to fit any resolution or screen size.According to one aspect, novel client-side processing of Web content isprovided that translates portions of Web content requested by a userfrom an original format to a scalable vector-based format. The scalablevector-based format enables the Web content to be rendered by the clientsuch that the rendered display substantially retains an original pagelayout defined by the original format, while supporting scaling andpanning of the Web content in real-time.

Other features of the present invention will be apparent from theaccompanying drawings and from the detailed description that follows.

BRIEF DESCRIPTION OF THE DRAWINGS

The appended claims set forth the features of the invention withparticularity. The invention, together with its advantages, may be bestunderstood from the following detailed description taken in conjunctionwith the accompanying drawings of which:

FIG. 1A is a block schematic diagram illustrating a first exemplarysystem infrastructure in accordance with the present invention in whichcontent translation services are performed by a third-party proxyservice that translates content requested from a client that isretrieved from one or more network resources into a scalable vectorrepresentation and delivers the translated content to the client;

FIG. 1B is a block schematic diagram illustrating a second exemplarysystem infrastructure in which the translation of content is performedat a content provider's web site and delivered directly to therequesting client;

FIG. 1C is a block schematic diagram illustrating a third exemplarysystem infrastructure in which content received from one or more networksources is translated into a scalable vector representation at theclient;

FIG. 2A is a flowchart illustrating how data is retrieved, processed andtransferred in accordance with the system infrastructure of FIG. 1A;

FIG. 2B is a flowchart illustrating how data is retrieved, processed andtransferred in accordance with the system infrastructure of FIG. 1B;

FIG. 2C is a flowchart illustrating how data is retrieved, processed andtransferred in accordance with the system infrastructure of FIG. 1C;

FIG. 3 is a block schematic diagram illustrating an exemplaryarchitecture corresponding to the proxy server of FIG. 1A;

FIG. 4A is a representation of an exemplary web page has displayed on aconventional browser;

FIG. 4B is a schematic diagram illustrates various objects that aregenerated based on the HTML code of the web page of FIG. 4A;

FIG. 4C is a schematic diagram illustrating a set of vectors andbounding boxes corresponding to the objects generated in FIG. 4B;

FIG. 4D is a schematic diagram illustrating how various vectors andbounding boxes may be defined in accordance with the invention;

FIG. 4E is a representation of the web page of FIG. 4A after it has beenoffset and scaled in accordance with the invention;

FIG. 4F is a schematic diagram illustrating new datum points andbounding boxes corresponding to the scaled and offset web page;

FIG. 4G is a schematic diagram illustrating new vectors and bounding boxparameters for a pair of objects in the scaled and offset web page;

FIG. 5 is a flowchart illustrating the logic used by the invention whentranslating content into a scalable vector representation of thatcontent;

FIG. 6 is a flowchart illustrating client-side operations that areperformed to create a rendered display page based on the translatedcontent the client receives and user-input;

FIGS. 7A and 7B are representations of a nominal and a zoomed in columnview of an exemplary web page as they might appear on a Palm device;

FIGS. 8A and 8B are representation of nominal and zoomed in view of anexemplary graphic image as they might appear on the Palm device;

FIGS. 9A and 9B are representations of a nominal and zoomed in view of atext portion of a web page as they might appear on the Palm device; and

FIG. 10 illustrates an exemplary computer system that may be used forimplementing various aspects of embodiments of the invention.

DETAILED DESCRIPTION OF THE INVENTION

Apparatus and methods are described for creating resolution independentvector display of Internet content to allow it to be scaled (zoomed)larger and smaller for better viewing or to fit any resolution or screensize. In addition, infrastructure and methods are provided fordelivering such content to clients.

In the following description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the present invention. It will be apparent, however, toone skilled in the art that the present invention may be practicedwithout some of these specific details. In other instances, well-knownstructures and devices are shown in block diagram form.

The present invention includes various operations, which will bedescribed below. The operations of the present invention may beperformed by hardware components or may be embodied inmachine-executable instructions, which may be used to cause ageneral-purpose or special-purpose processor or logic circuitsprogrammed with the instructions to perform the operations.Alternatively, the operations may be performed by a combination ofhardware and software.

The present invention may be provided as a computer program product thatmay include one or more machine-readable mediums having stored thereoninstructions, which may be used to program a computer (or otherelectronic devices) to perform a process according to the presentinvention. The machine-readable medium may include, but is not limitedto, floppy diskettes, optical disks, CD-ROMs, and magneto-optical disks,ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, flash memory, orother type of media/machine-readable medium suitable for storingelectronic instructions. Moreover, the present invention may also bedownloaded as a computer program product, wherein the program may betransferred from a remote computer (e.g., a server) to a requestingcomputer (e.g., a client) by way of data signals embodied in a carrierwave or other propagation medium via a communication link (e.g., a modemor network connection). Accordingly, herein, a carrier wave shall beregarded as comprising a machine-readable medium.

Client Overview

According to one embodiment, an ultra-thin client-side viewer providesthe graphics, linking, caching, and function handling capabilitiesnecessary for extending the web to almost any platform. It is designedas a lightweight browser (micro-browser) running directly on deviceoperating systems. In alternative embodiments, the client-side viewermay be deployed as a standard browser plug-in, or Java applet forextending browser functionality. In one embodiment, the client-sideviewer attains its small size and efficiency by taking advantage of thepower of SVF (Simple Vector Format) to describe almost any current webcontent. SVF files can be handled with a tiny fraction of the clientcode required by normal web browsers because current browsers mustinterpret a large and growing number of file types and theiridiosyncrasies. SVF was originally designed to handle a superset of themost commonly used file formats in the complex world of CAD. It canaccommodate not only new graphical functions, but the storage andtransfer of almost any foreseeable new functional capability. SVF hasbeen under consideration by the W3C (World Wide Web Consortium) foradoption as a standard for vector content on the World Wide Web.

By working tightly with a server-side content translator, web contentand functionality can be passed seamlessly to the end user platformwithout any degradation in the look or feel of the output. In addition,because the resulting file graphics are handled as vectors, the end usercan control real time changes in the size of text and graphics as wellas what portion of the file is viewable in the display. This “zoom andpan” capability, familiar to CAD and other vector content softwareusers, adds dramatically to the usability of non-standard display sizes.For very small displays, real time zooming and panning allows the userto see graphics and text at sizes that make them easily readable, andthen “back up” to view an entire page for context or pan in anydirection for navigation. Because the client-side viewer manipulatesvectors, there is no loss in quality as the display is zoomed. Thegraphics rendering engine within the client is so efficient that filemanipulation happens in a fraction of a second. There is no perceptiblewait for the user as the file is resized, or the window is repositioned.Content created for one display resolution now can be sized, real time,for any other display without degradation. Besides making small displayseminently usable, this technology extends web content into somesurprising new arenas. For example, it enables normal desktop displaysto be effective for individuals with visual impairment, or for contentdesigned for 640×480 standard PC monitors to be shown withoutdegradation on web billboards now appearing in cities like Seattle andSan Francisco.

With a client of such extraordinary power packed in a tiny footprint,end user device manufacturers can free up valuable memory space forpre-fetching, caching and pre-loading content, dramatically improvingperformance for use in low bandwidth and portable applications. In theexample of a wireless handheld device where expensive flash memory mustbe used instead of more cost effective bulk storage technology, thedifference between consuming 10's of megabytes of flash memory with astandard browser versus running the client-side viewer described hereinis dramatic.

Those “saved” megabytes of memory are now available for impressiveinterfaces, caching of often used content, and pre-fetching ofintelligently selected linked files or pre-loading of content fortargeted applications. For example, in a mapping application, the maptiles surrounding the viewed map could be downloaded and stored whilethe user was working with the initial tile, enabling an experienceremarkably free from the current frustrations of waiting for a new mapto be transferred for even the smallest change in magnification orcoverage. If the user knows ahead of time what city they will visit on abusiness trip, maps and additional travel information in great detailcould also be pre-loaded using a high bandwidth connection at home or inthe office before heading out to shop or conduct business in the city.Additionally, SVF is a more efficient way to store web content.Resulting content files are reduced in size by anywhere from 20 to 80percent over their source. SVF is also very compressible. With targetfile size reduction in the range of 90%, SVF files can take up as littleas 1/10th the space of the web files in current use. This means thatpre-translated content can be moved up to 10 times the rate of currentweb pages, and as much as 10 times as many pages, maps, stock charts,etc. can be stored for instant retrieval on the hand held platform ascan be handled with current web technology.

When used on content created natively in SVF, additional capability canbe extended to the client-side viewer.

Graphing the performance of stocks over time is only one use of SVF'sability to handle streams of data. Handling the output from financialsystems, transactional systems, ERP packages, and CRM systems becomeseasier and more flexible. Of course, systems integrators don't have touse these powerful capabilities to start with. If the target systemprovides web interfaces, these can be viewed, as designed, with noadditional software to write, and no changes to the design or layout ofthe interface.

Server Overview

Enabling the client-side viewer to be so small and powerful is theserver-side content translator. The server-side content translatorrapidly translates Web content to SVF, compresses and encrypts the SVFresults if desired, and transfers the vector formatted results to theclient-side viewer. Alternatively, SVF files can be cached or stored ina file system for fetching and transfer at a later time. Pre-translatedor cached content transfers are significantly faster as no conversionoverhead is incurred, and file sizes are reduced using the moreefficient SVF. Combine that with standard compression algorithmsselectable for use with the client-side viewer for additionalperformance improvements.

During the translation process, and in the process of serving cached,pre-translated, or native SVF content, output files are “streamed” tothe client-side viewer. Although this does not decrease the total timefor file transfer, it can significantly improve the effective systemperformance for the end user. Content can be selectively streamed, withtext and links coming through first, followed by graphic images andother content, for example. Should the user be accessing a link, ratherthan having interest in the entire file served, links can be selectedearly in the transfer and the next file download started immediately. Inaddition to streaming, the server-side content converter may also layerthe content by type. This means that text can be put in one layer, linksin another, GIF images in another, Javascript in another and so on.Layers can be turned on or off depending upon client capabilities,making files for less capable clients, or for users interested in areduced functionality, higher transfer performance mode to be handledautomatically.

All operational modes may be controlled through an administrativeinterface or accessible through a straightforward API (ApplicationProgram Interface). Furthermore, the system works with existingfirewalls and within standard security protocols. In more secure modes,the server-side content converter and the client-side viewer may operateusing Public/Private key authentication and encryption.

Exemplary System Infrastructures

In the following paragraphs, a description of three exemplary systeminfrastructures is provided. Schematic illustrations of these systeminfrastructures are shown in FIGS. 1A, 1B, and IC. It is noted thatlike-numbered components in these Figures perform substantially the samefunction. Therefore, any discussion of the functions of a component withreference to one or more of the infrastructures generally may apply tothe other infrastructures as well, unless specifically noted otherwise.

A first of exemplary system infrastructure 10A for implementing theinvention is shown in FIG. 1A. Infrastructure 10A enables variousclients, including wireless devices such as a cellular phone 12, awireless-enabled PDA 14, and a wireless-enabled laptop computer 16, aswell as landline computers 18, 20, and 22, to request content that isaccessible via a network such as the Internet 24 to be retrieved fromselected network resources, including web servers 26 and 28 and an FTPsite 30, wherein the content is translated into a scalable vectorrepresentation (e.g., SVF, also referred to herein as “vectorizedcontent”) through use of a proxy server 32 and sent to the requestingclient. Upon being received by the client, the vectorized content isprocessed and rendered using a thin client to enable a user to view thecontent on the client device.

With reference to the flowchart of FIG. 2A, the foregoing process isinitiated by a client in a block 100, wherein the client submits arequest to proxy server 32 to retrieve and convert selected content. Asdepicted by a transfer path 34, this comprises sending data 36, whichincludes content network location indicia from which the content can beretrieved and proxy server network location information by which thecontent request may be delivered to over Internet 24 to proxy server 32.Typically, it will be desired to retrieve a particular web page.Accordingly, the content network location indicia will comprise a URL(uniform resource locator) for the web page. Similarly, the proxy servernetwork location information may also comprise a URL corresponding to anetwork access point for the proxy server. Optionally, the locationinformation may comprise a network IP address for one or both of thecontent location and the proxy server location. If the content is to beretrieved from an Internet resource, the request will typically be sentusing the HyperText Transfer Protocol (HTTP) over the TCP/IP transport.

Next, in a block 102, the request is received by the proxy server andthe proxy server checks its cache to see if it already has the requestcontent in its cache. If it does, it sends this cached content back tothe client. If it does not have the requested content cached, the proxyserver sends out a request to retrieve the content from the networkresource. For illustrative purposes, it will be assumed for the presentexample that the desired content comprises a web page that is stored onweb server 26. Typically, when the requested content comprises a webpage, the content may be retrieved using conventional web contentretrieval techniques, such as that employed by various modern browserclients, including Netscape Navigator and Internet Explorer. Thisgenerally comprises providing routing information, such as the URL forthe web page (URL 38) to routing services provided by Internet 24, whichroutes the request to an appropriate network resource (e.g., web server26), as depicted by a transfer path 40.

Typically, the URL will correspond to a web page whose content is storedby the web server in an HTML (HyperText Markup Language) documentcomprising HTML code and embedded text content, in addition to otheroptional content languages, that may contain references to other objects(e.g., HTML documents and graphic image files) stored locally to theserver or stored on a remote server. For example, the HTML contentcorresponding to a single-frame web page is often stored in a singlefile, while multiple-frame web pages may comprise content that is storedin a single file or in multiple files. These files may be stored locallyon the web server (e.g., on one of the server's hard disks), or on alocal storage device connected to the web server via a local areanetwork (LAN), such as a network attached storage (NAS) filer.Optionally, some of the web page's content may comprise one or moredocuments that are stored at remote locations that may be accessed via aWAN (wide area network) or the Internet.

HTML is a standardized language that describes the layout of content ona web page, and attributes of that content. This layout and attributeinformation is defined by sets of tags contained in HTML codecorresponding to the page. The tags define various HTML layout anddisplay information, including tables, paragraph boundaries, graphicimage positions and bounding box sizes, typeface styles, sizes, andcolors, borders, and other presentation attributes. A portion or all ofa web page's text content may be contained in the parent HTML documentcorresponding to the URL. In addition to basic HTML, web page documentsmay contain XML (eXtensable markup language) code, as well as scriptinglanguage code, such as javascript. However, for simplicity, anydocuments containing web page content other than only graphic contentthat are discussed herein will be referred to as HTML documents.

In addition to HTML and other markup and scripting language content, itis very common for web pages to include graphical content. In general,graphical content is usually stored in an image file or files that areexternal from the parent HTML document for the web page. For example,the parent HTML document may contain one or more embedded image tagsthat reference the location where those images are stored. As before,the graphic images may be stored locally, or may be stored on remoteservers that are accessed by the web server via a WAN, or the Internet.These files will typically comprise data stored in one of severalwell-known graphic formats, including bitmap files (BMP), GIF (GraphicsInterchange Format) files, and JPEG (Joint Photographic Experts Group)files.

In response to receiving the request for content, web server 26 beginssending a parent HTML document 42 back to proxy server 32 in a block104. In a block 106, the HTML content of the parent HTML document isparsed to search for references to external objects such as HTML framesand graphics. In a decision block 108, a determination is made towhether any references are found. For each reference to an externalobject that is found, proxy server 32 requests to have the objectretrieved from an appropriate network resource (e.g., a web server) in ablock 110, and data corresponding to the object is transmitted back tothe proxy server, as depicted by locally accessible HTML documents 44and graphic images 46, as well as remotely accessible HTML documents 48and graphic images 50, which may be accessed via web server 28. If theexternal object is a graphic image, there is no further processing ofthe object at this point. If the object is an HTML document, thefunctions provided by blocks 106 and 108 are repeated. Generally, thisset of processing functions is repeated iteratively until all of theexternal objects are retrieved. However, as described below, there willbe some instances in which certain objects will be retrieved at a laterpoint in time. In addition to content stored on web servers that areaccessed using HTTP, content may also be retrieved from various networksites using the File Transfer Protocol (FTP), such as FTP documents 51,which are accessed via FTP server 30.

In general, HTML documents and graphic files will be sent as packetizeddata streams using HTTP over one or more TCP/IP network connections,wherein the data streams will usually be asynchronous. Retrieval of HTMLdocuments and graphic files corresponding to the embedded referenceswill usually require additional transfer time. Furthermore, graphiccontent oftentimes comprises significantly larger file sizes than HTMLcontent, leading to significant transfer times in some instances. Forsimplicity, the transfer of the various HTML documents and graphic filesfor the content request are depicted by HTML documents 52 and graphicdocuments 54, which are transferred over a transfer path 56.

When the HTML documents and graphic content are received by proxy server32, a scalable vector representation of the web page is generated in ablock 114 by an HTML translator 58. In brief, HTML translator 58translates HTML, XML, and cascaded style sheet (CSS) layout content intoa scalable vector representation, such as SVF. Details of the HTMLtranslation process are contained below. In addition, the graphic imagesare converted into a compressed bitmap format in a block 116 by agraphics translator 60. The vectorized content 62 and compressed bitmaps64 are then streamed back to the client (i.e., computer 18) in a block118, as depicted by a transfer path 66. In one embodiment, the contentportions are sent in separate streams using multiple connections. Inanother embodiment, the content portions are sent via a multiplexedstream using a single connection. As the vectorized content andcompressed bitmap data are received by the client device, they areprocessed by a thin client 68 running on the client device, whereby arepresentation of the original web page content may be rendered on theclient device's display screen at various user-selectable scaledresolutions and pan offsets in a block 120, thereby enabling a user tomore clearly see an overview or details in the web page. Further detailsof the client side processing are provided below.

As discussed above, wireless clients may also access the vectorizednetwork (e.g., web site) content provided via proxy server 24. Themajority of this process is identical to that described above forland-line clients (e.g., computers 18, 20, and 22), except forprovisions required for sending data to and receiving data from wirelessdevices. In general, most wireless devices will access the Internet viaa wireless service provider (i.e., a wireless telecommunicationscarrier) that is particular to that wireless device. Accordingly, aportion of the transmission path to and from proxy server 24 willcomprise infrastructure provided by that service provider and/or sharedwith other service providers. For simplicity, this infrastructure isshown as a cellular tower 70 and a service provider data center 72,although it will be understood by those skilled in the art that theconnection path may comprise additional infrastructure components,including appropriate gateways and routers, that enable wireless devicesto access proxy server 24.

In some implementations, there will be no special formatting/protocolservices that need to be performed by proxy service 24—from theviewpoint of the proxy service, it will be immaterial whether the clientis a land-based or wireless client; the special handling provisions forwireless devices will be handled entirely by the service providersinfrastructure transparently at both ends of the communications path. Inother instances, it may be desired or necessary to reformat the datacontent delivered to the wireless device at the proxy service. This willgenerally be dependent on the particular wireless protocol used, andwhat services are provided by the service provider for the wirelessclient.

Currently, in the United States, wireless clients generally accessInternet 24 by using the Wireless Application Protocol (WAP). In Japan,the most popular access means is NTT DoCoMo's i-Mode wireless protocol.In addition to these wireless standards, new standards are anticipatedto be in force in the near future, including NTT DoCoMo's FOMA (Freedomof Mobile Multimedia Access), which is transported over W-CDMA (WidebandCode Division Multiple Access), and CDMA-2000. For the purposes of theinvention herein, it will be understood that those skilled in the mobiletelecommunications arts will be knowledgeable about any particularformat and/or transport protocol requirements that pertain to theparticular protocol that is to be used.

A second exemplary system infrastructure 10B for implementing theinvention is shown in FIG. 1B. As will be readily recognized, much ofinfrastructure 10B is similar to infrastructure 10A; however, ratherthan have a separate proxy server perform the proxy functions (retrieveand translate content), these functions are performed on machinesoperated by the web site in infrastructure 10B.

The logic implemented by the invention when providing content to aclient using infrastructure 10B is illustrated in the flowchart of FIG.2B, wherein the process begins in a block 101 in which the client sendsa content request 39 directly to the network site (e.g., web server 26),as depicted by a transfer path 41. In a block 103, HTTP negotiations areperformed to determine the format the content is to be delivered in. Forexample, the request may contain indicia identifying the type of contentrequested, such as an SVF MIME type (e.g., image/vnd.svf). This is toinform the web server that the request is for specially-formattedcontent rather than conventional content. The server first checks to seeif it already has cached the requested content. If it has, it sends thecontent to the requesting client; otherwise, it retrieves the parentHTML document in a block 107. It then performs processing steps inblocks 107, 109, and 111 to retrieve content referenced through embeddedtags in a manner substantially similar to that discussed above withreference to respective blocks 106, 108, and 110. The primary differencein this instance is that the web server does not receive requests fromor send documents to a proxy server—rather, the content is retrieved andprocessed at the web server, wherein the retrieved content may be storedlocal to the web server or retrieved from a remote server in a mannersimilar to that described above.

As before, the retrieved HTML documents are translated into scalablevector representations by HTML translator 58 in a block 114, while thegraphic images are translated into a compressed bitmap format by imagetranslator 60 in a block 116, as depicted by vectorized content 62 andbitmap content 64. The vectorized content and bitmap content are thenstreamed from the web server to the client in a block 119, as depictedby a transfer path 67. Upon arriving at the client, the vectorizedcontent and bitmap content are processed, scaled, and rendered on theclient in a block 120.

A third exemplary system infrastructure 10C for implementing theinvention is shown in FIG. 1C. In this configuration, the proxyfunctions are performed at the client. As shown by a block 113 in FIG.2C, the process for providing vectorized content to a client inaccordance with infrastructure 10C begins in a block 113, in which theclient sends a content request 37 to a network site, such as web server26, via Internet 24. In response, the network site retrieves the parentHTML document and sends it to the requesting client in a block 115. In amanner similar to that discussed above with reference to blocks 106,108, and 110 of FIG. 1A, the client first parses the parent HTMLdocument searching for embedded references to external objects andretrieves these objects, whereupon the embedded reference search isperformed on the newly retrieved document until all of the contentcorresponding to the original content request has been retrieved. Thiscontent is depicted by HTML documents 52 and image files 54, which aresent from the network site to the client via a transfer path 69. At thispoint, the client performs translations on the HTML content and thegraphic image content that are substantially similar to that performedby the proxy server in FIG. 1A or at the web site in FIG. 1B, asprovided by blocks 114 and 116. The vectorized and image content is thenprocessed and scaled by thin client 68 in a block 120, as depicted bydevice output 71.

Attention now is focused on the functionality provided by proxy server24 in system infrastructure 10A of FIG. 1. Fundamentally, the proxyserver functions as a proxy. It accepts requests for content from clientdevices as full URLs using standard HTTP mechanisms carried over amultiplexed TCP connection. Standard HTTP content negotiations featuresspecify the formats in which content is to be delivered (SVF, bitmap,and possibly others, which can be handed off to cooperating client-sidedisplay software). As described in further details below, in someembodiments the proxy server appears for the client as a normal proxy(that is, the client knows it is retrieving content via the proxy),while in other embodiments the proxy is transparent to the client.

The proxy server responds to client content requests by deliveringcontent in one of the requested formats, by retrieving the content in anappropriate format from its cache, or from an upstream content source(again using standard HTTP content negotiation features), or bytranslating upstream content from a supported original format to SVF orthe client bitmap format.

Requests from the server installation to its cache and from the cache toupstream content sources are made in HTTP carried over TCP using simplestraightforward Web content requests. For example, requests from clientsto the proxy server comprise HTTP proxy requests (e.g., “GEThttp://www/xyz.com/some_page.html HTTP/1.0 . . . ”) carried over TCP orover a lightweight multiplexing protocol over TCP. The multiplexingprotocol allows the server to push image thumbnails to the client beforethe SVF stream is available, as well as offering a channel for controland status information, more simultaneous channels than the clientoperating system may support, and a mechanism for prioritizinginformation flow from server to client under loose client control. Inaddition to HTTP requests, the proxy server architecture supports otheruser-level protocols, such as FTP and Gopher.

Details of some of the primary components of the proxy serverarchitecture are shown in FIG. 3. Internally, the proxy server comprisesa suite of coordinated processes connecting to upstream content throughan HTTP cache 74. In one embodiment all functions except caching areperformed in a single process, wherein multiple threads are used toeffect asynchronous I/O. Separate processes communicated via persistentmultiplexed connections carried over the most efficient reliabletransport available (e.g., Unix sockets over single processor andsymmetric multiprocessor (SMP) computers; TCP sockets between separatecomputers). All processes are capable of servicing multiple requestssimultaneously. No process maintains client state outside the context ofa single request, so all components can be repeated and load balancedacross multiple CPU's of an SMP computer or across separate computers ona LAN.

The various content translators used by the proxy server accept (viaHTTP PUT) or request (driven by HTTP proxy GET/POST) content insupported, but client-unsupported, formats; and return (via HTTP PUT orGET/POST response) one or more representations of that content in aclient-supported format. In the embodiments illustrated in FIG. 1A-C,two translators are used: HTML translator 58 and image translator 60.Future content types may be accommodated by new translators, byextending existing translators to cover the new content types, or byextending the client's capabilities. Standard HTTP content negotiationmechanisms are used to inform the proxy server of the client'scapabilities and expectations on each request.

Managers at the proxy server coordinate the operations of othercomponents. Two managers are presently defined; a client manager 73 thathandles client proxy requests, and a request manager 75 that handlesunproxied HTTP requests from other services. The managers acceptrequests, attempt to service them from HTTP cache 74, and drive HTMLtranslator 58 and image translator 60 when content does not match theclients' requirements. Managers also handle translator requests forinline content (e.g., image dimensions for page layout), and pushtranslated content into HTTP cache 74. Additionally, the client managercoordinates delivery of primary and inline content, and provides processand status information to the clients.

As discussed above, HTML translator 58 creates a scalable vectorrepresentation of the original HTML content of a requested web page. Inorder to better explain how translation of HTML content is performed,one embodiment of a translation process is described below as applied toan exemplary web page. In addition, details of conventional web pageclient and server-side processing are provided so as to clarify how webcontent is laid out during a pre-rendering process on the client.

FIG. 4 shows a representation of a web page 210 served from an exemplarystock brokerage Internet web site as it would appear when rendered on amodern Internet browser, such as Microsoft's Internet Explorer orNetscape's Navigator. Web page 210 is exemplary of many web pages thatimplement frames, and includes two adjacent frames 212 and 214. A logographic object 216A is displayed at the top of frame 212, whichadditionally includes a “MARKETS” text header 218A, an “INVESTMENTS”text header 220A, and a plurality of links with overlaying graphicobjects, including a “DOW” link 222A, a “NASDAQ” link 224A, an “OPTIONS”link 226A, a “CHARTS” link 228A, a “MUTUAL FUNDS” link 230A, a “IRA,401K OPTIONS” link 232A, and a “TAX INFORMATION” link 234.

A horizontal group of links 236 is disposed at the top of frame 214, andincludes a “QUOTES” link 238A, a “HOT PICKS” link 240A, a “CALENDARS”link 242A, and a “NEWS” link 244A. An advertisement banner 246A isdisplayed just below the horizontal group of links and just above a“NEWS SPARKS MARKET” headline 248A. Frame 214 also includes a pair ofgraphic image objects, including a DOW chart 250A and a NASDAQ chart252A. A set of user input objects is disposed adjacent to DOW chart 250Awithin a graphic object 254A, including an “ACCOUNT #” input box 255A,an “ACCESS CODE” input box 256A, and a “LOGIN” button 257A. In additionto the foregoing objects, frame 214 also includes text objects 258A and260A.

An HTML listing corresponding to web page 210 is presented below asLISTING 1. Note that LISTING 1 sometimes refers to object descriptionsand link paths rather than the text or path location of actual objectsfor simplicity, and that other elements commonly found in HTML pages,such as META entries, are omitted for clarity. LISTING 1  1. <html>  2.<head><title>”MARKET HOME”</title></head>  3.  4. <bodybgcolor=”#FFFFFF” link=”0033CC” vlink=”0033CC”>  5.  6. <framesetcols=”25%,75% frameborder=0 border=0>  7. <frame>  8.<align=left><align=top>  9. <img src=”/directory path/logo.gif” align =left border=“0” height=”80” width=”100”>  10.  <br><br>  11.  <t3>TEXTHEADER #1 align=left</t3><br>  12.  13.  <table width=”90%” border=0cellspacing=10 cellpadding=0 bgcolor=″#000000″  14.  align=center>  15.<tr>  16. <a href=”URL or path for LINK #5” <img src=”/directory  17.path/GRAPHIC#2″ height=”50” width =”150></a>  18. <tr>  19. <a href=”URLor path for LINK #6” <img src=”/directory  20. path/GRAPHIC#3″height=”50” width =”150></a>  21. <tr>  22. <a href=”URL or path forLINK #7” <img src=”/directory  23. path/GRAPHIC#4” height=”50” width=”150></a>  24. <tr>  25. <a href=”URL or path for LINK #8” <imgsrc=”/directory  26. path/GRAPHIC#5” height=”50” width =”150></a>  27.</table>  28. <br>  29. <t3>TEXT HEADER #1 align=left</t3>  30. <br> 31. <table width=”90%” border=0 cellspacing=10 cellpadding=0bgcolor=″#000000″  32.  align=center>  33. <tr>  34. <a href=”URL orpath for LINK #9” <img src=”/directory  35. path/GRAPHIC#6” height=”50”width =”150></a>  36. <tr>  37. <a href=”URL or path for LINK #10” <imgsrc=”/directory  38. path/GRAPHIC#7” height=”50” width =”150></a>  39.<tr>  40. <a href=”URL or path for LINK #11” <img src=”/directory  41.path/GRAPHIC#8” height=”50” width =”150></a>  42.  43. </table>  44.</frame>  45.  46. <frame>  47.  48. <table>  49. <tr>  50. <tablewidth=″100%″ border=0 cellspacing=15 cellpadding=0  51.bgcolor=″#000000″ align=center>  52. <tr>  53. <td><a href=”URL or pathfor link#1”> alt=”QUOTES”</a>  54. <td><a href=”URL or path for link#2”>alt=”HOT PICKS”</a>  55. <td><a href=”URL or path for link#3>alt=”CALENDERS”</a>  56. <td><a href=”URL or path forlink#4>alt=”NEWS”</a>  57. </table><br>  58. <br>  59. <img src=”URL forGRAPHIC #9” align=center  60. border=”0” height=”80” width=”325”>  61.<br><t1>HEADLINE TEXT>/t1>  62. <table>  63.  <Colgroup span=”2”>  64.<Col width = “400” align=“center”>  65. <Col width = “200”align=”center”>  66. <tr><td>  67. <img src=”/directory path/GRAPHIC#10” align = center  68. border=“0” height=”180” width=”350”>  69. <td> 70. /* INPUT FOR ACCOUNT NUMBER AND ACCESS CODE */  71. <SCRIPTLANGUAGE =”Javascript”>  72. <!---  73. [Javascript variabledeclarations]  74. [Javascript functions to enable login] ---!>  75.</SCRIPT>  76. <table>  77.  <td>  78. <img src=”/directory path/GRAPHIC#11” align = center>  79. <table width=”150” height=”25”>  80. <td>  81.<font size=−2 face=″arial,helvetica,verdana″>Account #</font>  82.<tr><input type=text name=″USERID″ maxlength=9 size=20>  83. <tr><fontsize=−2 face=″arial, helvetica″>Access Code:</font>  84. <tr><inputtype=password name=″PASSWORD″ maxlength=10 size=20  85.onKeyDown=″SuppressEnterBell(event)″  86onKeyPress=″SuppressEnterBell(event)″  87onKeyUp=″SubmitOnEnter(event)″>  88. <br>&nbsp;  89. <br><inputtype=″button″ value=″Login″  90.  OnClick=″ProcessForm()″>&nbsp;&nbsp;<input type=″reset″>  91. <br>&nbsp;  92. </td>  93.</table>  94. </table>  95. <tr>  96. <img src=”/directory path/GRAPHIC#12“ border=“0  97. height=”200” width=”350”>  98. <tr>  99. <p>TEXT FORTEXT OBJECT #1</p><br> 100. <p>TEXT FOR TEXT OBJECT #2</p> 101. </table>102.  </frame> 103. </frameset> 104. </html>

Web page documents comprise HTML code that is parsed, interpreted, andrendered by a browser. An HTML document comprises a plurality of HTML“markup” elements (tags) with corresponding attributes, that are used todescribe the layout and formatting of various objects, including plaintext and graphic objects, embedded between tag pairs. Exemplary elementsinclude text tags (e.g., <b></b> for bolding text), links (e.g., <ahref=“URL”></a>), formatting (e.g., <p></p> for creating a newparagraph, graphical (e.g., <img src=“name”>), wherein “name” defines anabsolute or relative location at where an image is stored, tables (e.g.,<table></table>) creates a table, and forms (e.g., <form></form> createsall forms).

As of Netscape Navigator 3.0 (and other later browsers), web pages couldinclude frames. When using frames, the display page is divided intomultiple framed areas. Framing enables a single display page to includesource code from several HTML documents (one for each frame) oroptionally, enables a single document to include more complicatedgrouping of contents whereby different content groups are contained inseparate frames. Frames are commonly found on the web pages at sitesthat display a great deal of text and graphical content, such asMSN.com, ESPN.com, and USAToday.com.

With reference to the flowchart of FIG. 5, the process for translatingthe HTML content into a scalable vector representation proceeds asfollows. The process is initiated when the proxy server receives theHTML corresponding to the parent document (and frame documents, ifappropriate), whereupon a pre-rendering parsing of the HTML is performedto determine where to place the various objects on the display page in ablock 150. For example, elements such as tables, column definitions,graphic images, paragraphs and line breaks are identified. If frames areincluded, each frame is examined in the sequential order it appears inthe HTML document, or the order in which the HTML documentscorresponding to the frames in a frameset are downloaded to the browser.During further processing, the actual objects are rendered in theirrespective positions. Some of these objects are rendered almostimmediately, such as plain text, while other objects, such as graphicobjects, must first be retrieved prior to being fully-rendered. Withrespect to tables, there are some instances in which the all of theobjects corresponding to the cells in the table must be retrieved priorto rendering any of the table, while a well-designed table can berendered incrementally. For example, by using Column grouping, theformat of the corresponding table can be quickly determined by thebrowser. In some instances, one or more bitmaps may actually need to befetched before the page layout can be determined.

Next, in a block 152, the content is separated into objects based onlogical groupings of content portions and a page layout is built usingbounding boxes that are produced for each object. As the primary HTMLdocument is parsed, logical groupings of content will emerge. Forinstance, text content contained within paragraph tags <p></p> forms alogical grouping of text content. In essence, a logical grouping meansthe content should appear together as a logical group, such as within asubstantially rectangular outline, in the rendered page. Other logicalgroupings include frames, table content, row content, single lineentries such as headlines and headers, and user-interface objects, aswell as graphic layout objects, such as separator bars, and graphicimages. In addition to logically grouping content into objects, a“bounding box” is defined for each object. In general, the bounding boxdefines an outlined shape within which the content (text or graphicimage) will appear. In most instances, the bounding box will besubstantially rectangular in shape. However, bounding boxes comprisingmore complex shapes may also be produced.

In further detail, the following explains how objects corresponding tographic images are produced. In HTML, objects comprising graphic contentare identified by an <img src=“/local directory path/graphic image file”(for a local graphic image) or “URL” (for a remote graphic image)> or<object> or other tags. In the foregoing tag, local graphic images aretypically stored on the same server as the web page, or another computerthat is local to the site's server, and generally are located through alocal directory path (absolute or relative to the location of thepresent page) that points to the graphic image file. Remote images arethose images that are stored on servers at sites that are remote to theweb server. For example, with reference to LISTING 1, when the parserencounters line 9, the browser identifies that data comprising a graphicimage corresponding to logo graphic object 1 will be arriving (or mayhave already been received), and the displayed image is to have a heightof 80 pixels and a width of 100 pixels. The location of each object on adisplay page will be dependent on previous HTML layout elements, such astables, paragraphs, line breaks, and other graphic objects. The size andlocation of the other graphic objects (i.e., graphic objects #2-12) onthe page are determined in a similar manner. The HTML code for theseobjects are shown in lines 16, 19, 22, 25, 34, 37, 40, 59, 67, 78 and96, respectively. As identified in the HTML code, data corresponding tographic objects #9 (advertisement banner 46A) is forwarded to thebrowser from an external site (as indicated by the URL to GRAPHIC #9),while graphic objects 1-8 and 10-12 are sent from the web site theparent HTML document is sent from.

In a similar manner, the foregoing technique is applied to the HTML codein the primary document to identify other types of objects as well. Inaddition to parsing the primary HTML document, similar processing isperformed on referenced documents, such as documents that include framecontent that is defined and stored separate from the primary HTMLdocument.

A representation of the results of the functions performed in block 152are shown in FIG. 4B. In the Figure, objects corresponding to theoriginal content of FIG. 4A are shown with an appended “B” that is addedto each object's root reference number, wherein the root referencenumber for an object is that same as the logically grouped content inFIG. 4A that it corresponds to, e.g., an object 248B is generated for“NEWS SPARKS MARKET” headline 248A, etc.

Next, in a block 154, the page layout is defined based on the boundingboxes. In actuality, generation of the page layout information isperformed in conjunction with defining the boundary boxes for theobjects, wherein the location of a given object is based on the locationof other related (e.g., if within a table) or non-related objectscorresponding to HTML content that have been previously parsed. Forexample, the location of a given paragraph will depend on the othercontent for the page that are listed prior to the definition for theparagraph in the primary HTML document or referenced document, ifapplicable. As the HTML content of the primary and any referenced HTMLdocuments are parsed, the page layout is generated based on the variousHTML tags and the content embedded between tag pairs and/or referencedby a tag pair statement (e.g., graphic images).

As will be recognized by those skilled in the art, the functionsperformed in blocks 150, 152, and 154 are commonly performed byconventional browsers during a pre-rendering process. In some browsers,these functions are performed by the Mozilla rendering engine, whichcomprises open source software that is readily available for use bydevelopers. At present, the software for the Mozilla rendering enginemay be accessed via the Internet at www.mozilla.org. Accordingly, in oneembodiment, the present invention uses core functionality provided bythe Mozilla rendering engine source code to perform the functions ofblock 150, 152, and 154.

At this point, the present invention deviates substantially from theprior art by using the various object layout data generated during thepre-rendering process to generate a scalable vector representation ofthe original page content. First, in a block 156, a datum point isdefined for the page and the bounding box for each object. For example,as shown in FIG. 4C, a rendered page datum 262 is defined to becoincident with the upper left hand corner of the display frame of therendered page for the web page. Generally, any point on the page may beused as the page datum—the only requirement is that the page datum thatis selected is used consistently throughout the process. The use of theupper left hand corner of the display frame is advantageous since thelocation of the first object encountered in the HTML code for a page islocated relative to this corner.

In general, the datum points for each object may also be located anyplace on the object, as long as the object datum points are used in apredictable manner. For example, as depicted in FIG. 4C, various datumpoints for corresponding objects are defined to be coincident with theupper left hand corner of the bounding box for that object, wherein theobject's datum point shares the root reference number of the object withan appended “C.”

Once the page's datum point and an object's datum point are known, avector between these points is generated for each object in a block 158.With reference to FIG. 4D, in one embodiment, wherein the page datumpoint corresponds to the upper left and corner of the display frame andis assigned an XY value 266 of 0,0, the vector for a given object may bestored as the XY value of the datum point of that object relative to0,0, such as a value of 150, 225 (ref. num. 268) for a vector 250Dpointing to an object datum 250C, and a value of 150, 425 (ref. num.270) for a vector 252D pointing to an object datum 252C. In anotherembodiment, each vector may be stored as XY data relative to a 0,0 datumpoint corresponding to the upper left hand corner of the frame theobject belongs to. For example, a vector 250D′ from a frame datum 214Dto object datum 250C is stored as 20, 200 (ref. num. 268′), while avector 252D from frame datum 214D to object datum 252C is stored as 20,425. In this embodiment, offset information for each frame relative to aknown datum will also be stored, as depicted by a vector 214D.

The scalable vector representation is completed in a block 160, whereina reference is created for each object that includes or links anobject's content and attributes, such as object type (e.g., text,image), object typeface, and boundary box parameters, to the object'svector. For example, object 250B is a graphic image having a vector 250Dand a bounding box that is 180 pixels high and 350 pixels wide, whileobject 252B is a graphic image having a vector 252D and a bounding boxthat includes a height of 200 pixels and a width of 350 pixels. Thisenables client-side operations to be performed that only initiallyconsider the vectors, wherein if it is determined that a vector'sendpoint (and/or the bounding box corresponding to the object the vectorpoints to) would appear off of a display, there is no need to retrievethe content and attribute data linked to the vector. This concept isexplained in further detail in the following section.

It is noted that a portion of the display content produced on a clientdevice will never contain any rendered content, as this portion isreserved for the browser's user interface. In WINDOWS™ environments,this portion will include the browser's window frame, as well as thepulldown and icon menus provided in the browser's user interface, whichare depicted by a box 264 in the Figures herein.

Client-Side Software and Processing

As discussed above, the present invention supports a wide variety ofclients, including land-based clients and wireless clients. Each clientrequires some client-side software that enables the scalable vectorcontent data provided to it to be rendered at a user-selectable scalefactor and offset on the client's display, such as a monitor or built-inLCD screen.

By enabling original content from a web site to be displaced in such aresolution-independent manner, users will be able to view content in amanner that did not previously exist, greatly enhancing the userexperience. For example, in some implementations the client may be apersonal computer (PC). Using a least-common denominator approach, manyweb pages are designed for a smaller resolution (for example 640×480pixels, a minimum resolution commonly supported by nearly all PC's,including legacy PC's) than the resolution provided by the video outputcapabilities available with many of today's PC's, such as 1024×768pixels, 1280×1024 pixels, and even 1600×1200 pixels. As a result, whenthese web pages are displayed on a high-resolution display, they occupyonly a portion of the display, making portions of the pages, especiallythose portions containing small text, difficult to read. By enablingusers to selectively magnify the entire page, these design flaws areeasily overcome. Alternatively, the client may be a small device, suchas a hand held computer or a cell phone, which has a smaller displayresolution than common Web pages are designed for. As explained below,through use of the invention's scalable vector representation andclient-side processing, users are enabled to view the entire content ofbillions of existing Web pages using hand-held devices in a simple andreasonable way.

In one embodiment, the client software may be a plug-in to a Webbrowser, such as Netscape Navigator or Microsoft Internet Explorer. Sucha plug-in might have the browser download the data and display it in asub-window of the browser. Alternatively, the client software may be aJava applet running in a browser. As another option, the client softwaremay be a stand-alone program that interfaces with the proxy server orproxy software directly. The client software may bypass the proxy whenrequesting information that won't be translated to vectors, such asbitmaps.

With reference to FIG. 6, client-side processing proceeds in thefollowing manner. In a block 160, the vector representation data (i.e.,vectorized HTML content and compressed bitmap content) for the web pageis gathered at the client. Typically, this data will be stored in acache at the client as it is being received, and the client simplyretrieved the data from the cache. In a block 162, a display list ofvectors is built. This process is well known in the CAD arts, and isenabling rapid zooming of vector-based objects. In a block 164, userselectable scale and offset (pan) values are determined. Based onvarious user interactions with the user-interface of the client, theuser is enabled to control the zoom (size) and offset of the renderedpage. For example, suppose the user provides zoom and offset inputs toproduce a rendered page 210E, as shown in FIG. 4E. In this renderedpage, the original origin is now off of the screen (the page image isshifted upward and toward the left—see FIG. 4F), and the view has beenscaled approximately 1.3 times.

Next, in a block 166, the vectors and boundary boxes are processed basedon the scale and offset, and a bounding box defining the limits of thedisplay content is determined. The results of this step are shown inFIG. 4F, while FIG. 4G shows specific details one how the vectors andbounding boxes corresponding to image objects 250B and 250B (now 250B′and 252B′, respectively) are processed. Logically, there are generallytwo ways to scale and offset the rendered content. In one embodiment,vectors and bounding boxes are mapped to a virtual display area inmemory that has much greater resolution (e.g., 100,000×100,000 pixels)than any real display, and a virtual display limit bounding box isscaled and moved around over the virtual display area. Accordingly,during subsequent processing described below, objects falling within thedisplay bounding box are rendered by reducing the scaling of thoseobjects in the virtual display to how the objects will appear on theclient device display relative to the virtual display bounding box. Inthe alternate, a fixed reference frame corresponding to the displayresolution of the client device screen is maintained, wherein allvectors and bounding boxes are scaled and offset relative to the fixedreference frame. Each scheme has its advantages and disadvantages. Oneadvantage of the second method is that the display bounding box isalways maintained to have a size that matches the resolution of thecontent display area on the client device.

As shown in FIG. 4G, respective offsets in X and Y, (−ΔX and −ΔY in theFigure) are applied to the starting point of each of the vectors. Thevectors are then scaled by a scale factor “SF.” The results of the newvectors are depicted by vectors 250D″ and 252D″. This produces a newdatum for each object's bounding box that is relative to rendered pagedatum 262, which remains fixed. As discussed above, only a portion ofthe display screen will actually be used to display content (as definedby a display limit bounding box 266 in this embodiment), while otherportions of the screen, including box 264, will comprise a generallyfixed-size user interface. Accordingly, rendered page datum 262 is notlocated at the upper left hand corner of the display area, although itpossibly could be located at this point when either the current userinterface is inactive (i.e., the display portion of the user interfaceis temporary disabled) or the user interface is contained in otherportions of the display.

This foregoing process establishes a starting point (the new datum) forwhere the content in each object's bounding box will be rendered. Atthis point, each object's bounding box is then drawn from its new datumusing the scaling factor. For example, in the original web page 210D(FIG. 4D), bounding box 250B had an X-axes datum of 150 pixels, a Y-axisdatum of 225 pixels, and a height and width of 180×350 pixels. Incontrast, after being offset and scaled, bounding box 250B′ has anX-axis datum of 150*SF−ΔX, a Y-axis datum of 225*SF−ΔY, and a height andwidth of 180*SF×350*SF.

Returning to the flowchart of FIG. 6, once the vectors and boundingboxes are offset and scaled, content corresponding to objects having atleast a portion of their bounding boxes falling within the display limitbounding box is retrieved from the client device's display list in ablock 168. For examples, as shown in FIG. 4F, content corresponding toall of the objects except for those falling entirely outside of displaylimit bounding box 266 (objects 216, 238, 240, 242 and 244) is retrievedfrom the display list. That content is then scaled in a block 170. Forimage content, this comprises decompressing and scaling the compressedbitmaps corresponding to those images. For text content, this comprisesscaling the font (i.e., typeface) that the text content portions of theweb page are written in the parent HTML document and any referenceddocuments. There are various techniques for typeface scaling that may beimplemented here, depending on the available resources provided by theoperating system of the client device. For example, for WINDOWS™operating systems, many TRUETYPE™ fonts are available, which use acommon scalable definition for each font, enabling those fonts to bescaled to just about any size. In other cases, such as current PDA(e.g., Palm Pilots) operating systems, there is no existing feature thatsupports scaling fonts. As a result, bitmapped fonts of different fontsizes and styles may be used. In addition to scaling image and textcontent, other types of content, such as separator lines and borders mayalso be scaled by block 170.

The process is completed in a block 172, wherein those portions of thescaled content falling within the display limit bounding box arerendered on the client device's display.

As discussed above, it is foreseen that the invention will be used withclient devices having small, low resolution displays, such as PDAs andpocket PCs. Examples of various views of an exemplary web pages obtainedfrom the YAHOO™ web site are shown in FIGS. 7A-B, 8A-B and 9A-B. Forinstance, FIG. 7A represents how the YAHOO™ home page might appear on aPalm IIIc color PDA.

In addition to directly scaling and offsetting content, the clientuser-interface software for PDA's provides additional functionality. Forinstance, a user may select to view a column (results represented inFIG. 7B by tapping that column with a stylus, a shown in FIG. 7A.Similarly, the user may select to zoom in on an image by tapping theimage with the stylus, as shown in FIGS. 8A and 8B, or select to view aparagraph in an article by tapping on the paragraph, as shown in FIGS.9A and 9B. It is noted that in some instances, the display of theparagraph may be reformatted to fit the characteristics of the display,rather than following the original format in the zoom-out view.

It is further noted that that different scaling factors can be appliedto the X and Y axis so as to change the aspect ratio of the display. Forexample, a Web page may be designed to be displayed on a computer havinga resolution of 800×600 pixels, or a 4× to 3Y aspect ratio. In thiscase, the display corresponds to a “landscape” layout, wherein there aremore pixels along the X axis than along the Y axis. Conversely, manyhandheld devices display images having a “portrait” layout, whereinthere are more pixels along the Y axis than the X axis. By enablingdifferent scaling factors to be applied to the X and Y axes, the presentinvention enables the aspect ratio of a rendered display image to beadjusted to better fit the aspect ratio of the client device.

An Exemplary Computer Architecture

An exemplary machine in the form of a computer system 500 in whichfeatures of the present invention may be implemented will now bedescribed with reference to FIG. 10. Computer system 500 may represent aworkstation, host, server, print server, or printer controller. Computersystem 500 comprises a bus or other communication means 501 forcommunicating information, and a processing means such as processor 502coupled with bus 501 for processing information. Computer system 500further comprises a random access memory (RAM) or other dynamic storagedevice 504 (referred to as main memory), coupled to bus 501 for storinginformation and instructions to be executed by processor 502. Mainmemory 504 also may be used for storing temporary variables or otherintermediate information during execution of instructions by processor502. Computer system 500 also comprises a read only memory (ROM) and/orother static storage device 506 coupled to bus 501 for storing staticinformation and instructions for processor 502.

A data storage device 507 such as a magnetic disk or optical disc andits corresponding drive may also be coupled to bus 501 for storinginformation and instructions. Computer system 500 can also be coupledvia bus 501 to a display device 521, such as a cathode ray tube (CRT) orLiquid Crystal Display (LCD), for displaying information to an end user.Typically, an alphanumeric input device 522, including alphanumeric andother keys, may be coupled to bus 501 for communicating informationand/or command selections to processor 502. Another type of user inputdevice is cursor control 523, such as a mouse, a trackball, or cursordirection keys for communicating direction information and commandselections to processor 502 and for controlling cursor movement ondisplay 521.

A communication device 525 is also coupled to bus 501. Depending uponthe particular presentation environment implementation, thecommunication device 525 may include a modem, a network interface card,or other well-known interface devices, such as those used for couplingto Ethernet, token ring, or other types of physical attachment forpurposes of providing a communication link to support a local or widearea network, for example. In any event, in this manner, the computersystem 500 may be coupled to a number of clients and/or servers via aconventional network infrastructure, such as a company's Intranet and/orthe Internet, for example.

Importantly, the present invention is not limited to having all of theroutines located on the same computer system. Rather, individualobjects, program elements, or portions thereof may be spread over adistributed network of computer systems. Additionally, it is appreciatedthat a lesser or more equipped computer system than the exampledescribed above may be desirable for certain implementations. Therefore,the configuration of computer system 500 will vary from implementationto implementation depending upon numerous factors, such as priceconstraints, performance requirements, and/or other circumstances. Forexample, according to one embodiment of the present invention, a cellphone or a hand held computer may comprise only a processor or a microcontroller and a memory, such as a micro code ROM or RAM, for storingstatic or dynamically loaded instructions and/or data.

In the foregoing specification, the invention has been described withreference to specific embodiments thereof. It will, however, be evidentthat various modifications and changes may be made thereto withoutdeparting from the broader spirit and scope of the invention. Thespecification and drawings are, accordingly, to be regarded in anillustrative rather than a restrictive sense.

1. A method comprising: retrieving Web content associated with a Webpage having an original format defining an original page layout andattributes in response to a request of the Web page made via a client;translating, via the client, at least a portion of the Web content fromits original format into scalable vector-based content that supports ascalable resolution-independent display of the content thatsubstantially retains the original page layout and attributes of thecontent defined by its original format when rendered; employing thescalable vector-based content to render at least a portion of the Webpage on a display using a first scale factor; and re-rendering the Webpage in response to associated user inputs to enable a user toiteratively zoom in and out a display of the Web page.
 2. The method ofclaim 1, further comprising enabling the display of the Web content tobe zoomed in real-time.
 3. The method of claim 1, wherein the clientcomprises a browser.
 4. The method of claim 3, wherein the browser isconfigured to run on at least one of a desktop computer, workstation,and laptop computer.
 5. The method of claim 3, wherein the browser isconfigured to run on a wireless handheld device.
 6. The method of claim1, wherein the client comprises a mobile device having a display onwhich the Web page is displayed when rendered.
 7. The method of claim 1,wherein the Web content includes at least one hyperlink, the methodfurther comprising: enabling the user to select the hyperlink; and, inresponse thereto, retrieving and translating the Web content associatedwith the hyperlink to produce additional scalable vector-based content;and employing the additional scalable vector-based content to render thedisplay.
 8. The method of claim 1, further comprising: parsing markuplanguage code to determine the original page layout of display contentwithin the Web page, wherein the original page layout defines a layoutlocation for a plurality of objects, including text objects, graphiclayout objects, graphic objects and/or image objects included in the Webpage; defining a primary datum corresponding to the original pagelayout; and, for each object, defining an object datum corresponding tothe layout location for the object; generating a vector from the primarydatum to the object datum for the object; and creating a reference thatlinks the object to its corresponding vector.
 9. The method of claim 8,further comprising translating at least one graphic or image object froman original format into a scalable format.
 10. The method of claim 8,further comprising storing attribute information pertaining to each textobject, said attribute information including a color and typefont foreach text object.
 11. The method of claim 8, wherein the Web contentcomprises a Web page including content that is stored on at least oneInternet site in one or more markup language documents that includemarkup language code defining the original page layout and attributes ofthe Web page.
 12. The method of claim 1, further comprising enabling theWeb content to be displayed at different resolutions by scaling thescalable vector-based content to re-render the display in response toassociated user inputs.
 13. The method of claim 1, further comprising:enabling a user of the client to select an area of the display to zoomin on by drawing a bounding box over the area via the client; and inresponse thereto, re-rendering the display such that content in thebounding box is scaled to be rendered substantially across at least oneof a width and a height of the display.
 14. The method of claim 1,further comprising: scaling the scalable vector-based content usingapplicable scale factors to re-render the Web content in response toassociated user inputs to enable the user to iteratively zoom in and outa display of the Web page.
 15. The method of claim 1, further comprisingenabling a user to pan a display of the Web content in response to acorresponding user input.
 16. The method of claim 15, further comprisingenabling the display of the Web content to be panned in real-time. 17.The method of claim 1, wherein the page layout of the Web page isdefined to have an original aspect ratio, and wherein the scalablevector-base content is scaled when rendered so as to produce a displayhaving a different aspect ratio.
 18. The method of claim 1, furthercomprising enabling a user to view a column of the Web content at ahigher resolution than a current resolution via an associated userinput, wherein in response to the user input, the display is re-renderedsuch that content corresponding to the selected column is displayedacross the display.
 19. The method of claim 18, wherein the user inputcomprises tapping the column.
 20. The method of claim 18, wherein thecontent of the column is reformatted to fit characteristics of thedisplay when the display is re-rendered.
 21. The method of claim 1,wherein the Web content includes at least one image, the method furthercomprising enabling a user to view an image at a higher resolution thana current resolution via an associated user input, wherein in responseto the user input, the display is re-rendered such that the image isdisplayed substantially across at least one of a width and height of thedisplay.
 22. The method of claim 21, wherein the user input comprisestapping the image.
 23. The method of claim 1, further comprisingenabling a user to view a paragraph of the Web content at a higherresolution than a current resolution via an associated user input,wherein in response to the user input, the display is re-rendered suchthat content corresponding to the selected paragraph is displayedsubstantially across the display.
 24. The method of claim 23, whereinthe user input comprises tapping the paragraph.
 25. The method of claim23, wherein the content of the paragraph is reformatted to fitcharacteristics of the display when the display is re-rendered.
 26. Themethod of claim 1, wherein the Web page includes text, layoutattributes, and images, the method further comprising: receiving contentcorresponding to the text and layout attributes via a first connection;and receiving content corresponding to at least one image via a secondconnection.
 27. The method of claim 1, further comprising: generating adisplay list of vectors associated with the scalable vector-basedcontent; and employing the display list to re-render the display of theWeb page.
 28. The method of claim 1, further comprising: parsing markuplanguage code corresponding to the received Web content to determine theoriginal page layout of the content on the Web page; logically groupingselected content into objects based on relative locations of the contentin the original page layout; defining a primary datum corresponding tothe original page layout; and, for each object, defining an object datumcorresponding to a layout location datum for the object's associateddisplay content; generating a vector from the primary datum to theobject datum for the object; and creating a reference that links theobject to its corresponding vector.
 29. The method of claim 28 furthercomprising: generating a bounding box for each object, the bounding boxrepresenting a portion of a rendered display page occupied by theobject's associated group of content.
 30. The method of claim 29,further comprising: mapping the object vectors and associated boundingboxes to a virtual display in memory.
 31. The method of claim 30,further comprising: determining a first scale factor and offset inresponse to one or more corresponding user inputs defining auser-selectable zoom level and pan corresponding to a rendered displayof the Web content desired by a user; determining a virtual displaybounding box for the virtual display associated with the first scalefactor and offset; identifying object bounding boxes having at least aportion falling within the virtual display bounding box; and, for eachof such object bounding boxes, retrieving content associated with thatobject bounding box; and applying an applicable scale factor to thecontent to render the display.
 32. The method of claim 31, wherein thevirtual display has a much greater resolution than the display.
 33. Themethod of claim 31, wherein the virtual display is associated with afixed reference frame, and the virtual display bounding box ismaintained to have a size matching the resolution of the content displayarea defined for the display.
 34. The method of claim 31, wherein thecontent includes text content, the method further comprising scaling ascalable font to render the text content.
 35. The method of claim 31,wherein the content includes text content, the method furthercomprising: determining an applicable font size based on the secondscale factor; and selecting a corresponding bitmapped font and employingthe bitmapped font to render the text content.
 36. The method of claim1, further comprising reformatting a text object so as to fit the textobject on the display when it is rendered.
 37. The method of claim 1,wherein the original format of the Web page defines a height and widthfor the Web page, the method further comprising: determining anapplicable scale factor to display at least one of the width and heightof the Web page substantially across the display; and employing thescale factor that is determined as the first scale factor.
 38. Themethod of claim 1, wherein the scalable vector-based content includesscalable text content and in the rendered displays the scalable textcontent is scaled.
 39. The method of claim 1, wherein the Web pageincludes one or more images, and in the rendered displays at least oneimage from among the one or more images is scaled.
 40. An apparatus,comprising: a processor, communications means operatively coupled to theprocessor, to enable the device to be linked to a network via which Webcontent may be accessed; a display; and storage means, operativelycoupled to the processor, in which a plurality of instructions arestored that when executed by the processor enable the apparatus toperform operations including, retrieving Web content associated with aWeb page having an original format defining an original page layout andattributes in response to a request of the Web page made via theapparatus; translating at least a portion of the Web content from itsoriginal format into scalable vector-based content that supports ascalable resolution-independent display of the content thatsubstantially retains the original page layout and attributes of thecontent defined by its original format when rendered; employing thescalable vector-based content to render at least a portion of the Webpage on the display using a first scale factor; and re-rendering the Webpage in response to associated user inputs to enable a user toiteratively zoom in and out a display of the Web page.
 41. The apparatusof claim 40, wherein zooming the display of the Web content is enabledto be performed in real-time.
 42. The apparatus of claim 40, wherein theapparatus comprises a mobile device and the communication devicesupports wireless communication with the network.
 43. The apparatus ofclaim 42, wherein the mobile device comprises a mobile phone.
 44. Theapparatus of claim 40, wherein the apparatus comprises one of a desktopcomputer, workstation, and laptop computer.
 45. The apparatus of claim40, wherein the Web content includes at least one hyperlink, and whereinexecution of the instructions performs further operations comprising:enabling the user to select the hyperlink; and, in response thereto,retrieving and translating the Web content associated with the hyperlinkto produce additional scalable vector-based content; and employing theadditional scalable vector-based content to render the display.
 46. Theapparatus of claim 40, wherein execution of the instructions performsfurther operations comprising: parsing markup language code to determinethe original page layout of display content within the Web page, whereinthe original page layout defines a layout location for a plurality ofobjects, including text objects, graphic layout objects, and/or graphicimage objects included in the Web page; defining a primary datumcorresponding to the original page layout; and, for each object,defining an object datum corresponding to the layout location for theobject; generating a vector from the primary datum to the object datumfor the object; and creating a reference that links the object to itscorresponding vector.
 47. The apparatus of claim 46, wherein executionof the instructions performs further operations comprising translatinggraphic image objects from an original format into a scalable format.48. The apparatus of claim 46, wherein execution of the instructionsperforms further operations comprising storing attribute informationpertaining to each text object, said attribute information including acolor and typefont for each text object.
 49. The apparatus of claim 40,wherein the Web content comprises a Web page including content that isstored on at least one Internet site in one or more markup languagedocuments that include markup language code defining the original pagelayout and attributes of the Web page.
 50. The apparatus of claim 40,wherein execution of the instructions performs further operationscomprising enabling the Web content to be displayed at differentresolutions by scaling the scalable vector-based content to re-renderthe display in response to associated user inputs.
 51. The apparatus ofclaim 40, wherein execution of the instructions performs furtheroperations comprising: enabling a user of the client to select an areaof the display to zoom in on by drawing a bounding box over the area viathe client; and in response thereto, re-rendering the display such thatcontent in the bounding box is scaled to be rendered across the display.52. The apparatus of claim 40, wherein execution of the instructionsperforms further operations comprising scaling the scalable vector-basedcontent using applicable scale factors to re-render the Web content inresponse to associated user inputs to enable the user to iterativelyzoom in and out a display of the Web page.
 53. The apparatus of claim40, wherein execution of the instructions performs further operationscomprising enabling a user to pan a display of the Web content inresponse to a corresponding user input.
 54. The apparatus of claim 53,wherein execution of the instructions performs further operationscomprising enabling the display of the Web content to be panned inreal-time.
 55. The apparatus of claim 40, wherein the page layout of theWeb page is defined to have an original aspect ratio, and wherein thescalable vector-base content is scaled when rendered so as to produce adisplay having a different aspect ratio.
 56. The apparatus of claim 40,wherein execution of the instructions performs further operationscomprising enabling a user to view a column of the Web content at ahigher resolution than a current resolution via an associated userinput, wherein in response to the user input, the display is re-renderedsuch that content corresponding to the selected column is displayedacross the display.
 57. The apparatus of claim 56, wherein the userinput comprises tapping the column.
 58. The apparatus of claim 56,wherein the content of the column is reformatted to fit characteristicsof the display when the display is re-rendered.
 59. The apparatus ofclaim 40, wherein the Web content includes at least one image, andwherein execution of the instructions performs further operationscomprising enabling a user to view an image at a higher resolution thana current resolution via an associated user input, wherein in responseto the user input, the display is re-rendered such that the image isdisplayed substantially across at least one of a width and height thedisplay.
 60. The apparatus of claim 59, wherein the user input comprisestapping the image.
 61. The apparatus of claim 40, wherein execution ofthe instructions performs further operations comprising enabling a userto view a paragraph of the Web content at a higher resolution than acurrent resolution via an associated user input, wherein in response tothe user input, the display is re-rendered such that contentcorresponding to the selected paragraph is displayed across the display.62. The apparatus of claim 61, wherein the user input comprises tappingthe paragraph.
 63. The apparatus of claim 61, wherein the content of theparagraph is reformatted to fit characteristics of the display when thedisplay is re-rendered.
 64. The apparatus of claim 40, wherein the Webpage includes text, layout attributes, and images, and wherein executionof the instructions performs further operations comprising: receivingcontent corresponding to the text and layout attributes via a firstconnection; and receiving content corresponding to at least one imagevia a second connection.
 65. The apparatus of claim 40, whereinexecution of the instructions performs further operations comprising:generating a display list of vectors associated with the scalablevector-based content; and employing the display list to re-render thedisplay at different scale factors to enable rapid zooming of the Webpage.
 66. The apparatus of claim 40, wherein execution of theinstructions performs further operations comprising: parsing markuplanguage code corresponding to the received Web content to determine theoriginal page layout of the content on the Web page; logically groupingselected content into objects based on relative locations of the contentin the original page layout; defining a primary datum corresponding tothe original page layout; and, for each object, defining an object datumcorresponding to a layout location datum for the object's associateddisplay content; generating a vector from the primary datum to theobject datum for the object; and creating a reference that links theobject to its corresponding vector.
 67. The apparatus of claim 66wherein execution of the instructions performs further operationscomprising: generating a bounding box for each object, the bounding boxrepresenting a portion of a rendered display page occupied by theobject's associated group of content.
 68. The apparatus of claim 66,wherein execution of the instructions performs further operationscomprising: mapping the object vectors and associated bounding boxes toa virtual display in memory.
 69. The apparatus of claim 68, whereinexecution of the instructions performs further operations comprising:determining a first scale factor and offset in response to one or morecorresponding user inputs defining a user-selectable zoom level and pancorresponding to a rendered display of the Web content desired by auser; determining a virtual display bounding box for the virtual displayassociated with the first scale factor and offset; identifying objectbounding boxes having at least a portion falling within the virtualdisplay bounding box; and, for each of such object bounding boxes,retrieving content associated with that object bounding box; andapplying an applicable scale factor to the content to render thedisplay.
 70. The apparatus of claim 69, wherein the virtual display hasa much greater resolution than the display.
 71. The apparatus of claim69, wherein the virtual display is associated with a fixed referenceframe, and the virtual display bounding box is maintained to have a sizematching the resolution of the content display area defined for thedisplay.
 72. The apparatus of claim 69, wherein the content includestext content, and wherein execution of the instructions performs furtheroperations comprising scaling a scalable font to render the textcontent.
 73. The apparatus of claim 69, wherein the content includestext content, and wherein execution of the instructions performs furtheroperations comprising: determining an applicable font size based on thesecond scale factor; and selecting a corresponding bitmapped font andemploying the bitmapped font to render the text content.
 74. Theapparatus of claim 40, wherein the original format of the Web pagedefines a height and width for the Web page, and wherein execution ofthe instructions performs further operations comprising: determining anapplicable scale factor to display at least one of the width and heightof the Web page substantially across the display; and employing thescale factor that is determined as the first scale factor.
 75. Theapparatus of claim 40, wherein the scalable vector-based contentincludes scalable text content and in the rendered displays the scalabletext content is scaled.
 76. The apparatus of claim 40, wherein the Webpage includes one or more images, and in the rendered displays at leastone image from among the one or more images is scaled.
 77. Amachine-readable medium having stored thereon a plurality ofinstructions configured to be executed by a machine having acommunications device to access Web content via a network and having adisplay, wherein execution of the instructions performs operationscomprising: retrieving Web content associated with a Web page having anoriginal format defining an original page layout and attributes inresponse to a request of the Web page made via the machine; translatingat least a portion of the Web content from its original format intoscalable vector-based content that supports a scalableresolution-independent display of the content that substantially retainsthe original page layout and attributes of the content defined by itsoriginal format when rendered; employing the scalable vector-basedcontent to render at least a portion of the Web page on a display usinga first scale factor; and re-rendering the Web page in response toassociated user inputs to enable a user to iteratively zoom in and out adisplay of the Web page.
 78. The machine-readable medium of claim 77,wherein zooming the display of the Web content is enabled to beperformed in real-time.
 79. The machine-readable medium of claim 77,wherein the machine comprises a mobile device and the communicationdevice supports wireless communication with the network.
 80. Themachine-readable medium of claim 77, wherein the machine comprises oneof a desktop computer, workstation, and laptop computer.
 81. Themachine-readable medium of claim 77, wherein the Web content includes atleast one hyperlink, and wherein execution of the instructions performsfurther operations comprising: enabling the user to select thehyperlink; and, in response thereto, retrieving and translating the Webcontent associated with the hyperlink to produce additional scalablevector-based content; and employing the additional scalable vector-basedcontent to render the display.
 82. The machine-readable medium of claim77, wherein execution of the instructions performs further operationscomprising: parsing markup language code to determine the original pagelayout of display content within the Web page, wherein the original pagelayout defines a layout location for a plurality of objects, includingtext objects, graphic layout objects, and/or graphic image objectsincluded in the Web page; defining a primary datum corresponding to theoriginal page layout; and, for each object, defining an object datumcorresponding to the layout location for the object; generating a vectorfrom the primary datum to the object datum for the object; and creatinga reference that links the object to its corresponding vector.
 83. Themachine-readable medium of claim 82, wherein execution of theinstructions performs further operations comprising translating graphicimage objects from an original format into a scalable format.
 84. Themachine-readable medium of claim 82, wherein execution of theinstructions performs further operations comprising storing attributeinformation pertaining to each text object, said attribute informationincluding a color and typefont for each text object.
 85. Themachine-readable medium of claim 77, wherein the Web content comprises aWeb page including content that is stored on at least one Internet sitein one or more markup language documents that include markup languagecode defining the original page layout and attributes of the Web page.86. The machine-readable medium of claim 77, wherein execution of theinstructions performs further operations comprising enabling the Webcontent to be displayed at different resolutions by scaling the scalablevector-based content to re-render the display in response to associateduser inputs.
 87. The machine-readable medium of claim 77, whereinexecution of the instructions performs further operations comprising:enabling a user of the client to select an area of the display to zoomin on by drawing a bounding box over the area via the client; and inresponse thereto, re-rendering the display such that content in thebounding box is scaled to be rendered substantially across at least oneof a width and a height of the display.
 88. The machine-readable mediumof claim 77, wherein execution of the instructions performs furtheroperations comprising scaling the scalable vector-based content usingapplicable scale factors to re-render the Web content in response toassociated user inputs to enable the user to iteratively zoom in and outa display of the Web page.
 89. The machine-readable medium of claim 77,wherein execution of the instructions performs further operationscomprising enabling a user to pan a display of the Web content inresponse to a corresponding user input.
 90. The machine-readable mediumof claim 89, wherein execution of the instructions performs furtheroperations comprising enabling the display of the Web content to bepanned in real-time.
 91. The machine-readable medium of claim 77,wherein the page layout of the Web page is defined to have an originalaspect ratio, and wherein the scalable vector-base content is scaledwhen rendered so as to produce a display having a different aspectratio.
 92. The machine-readable medium of claim 77, wherein execution ofthe instructions performs further operations comprising enabling a userto view a column of the Web content at a higher resolution than acurrent resolution via an associated user input, wherein in response tothe user input, the display is re-rendered such that contentcorresponding to the selected column is displayed across the display.93. The machine-readable medium of claim 92, wherein the user inputcomprises tapping the column.
 94. The machine-readable medium of claim92, wherein the content of the column is reformatted to fitcharacteristics of the display when the display is re-rendered.
 95. Themachine-readable medium of claim 77, wherein the Web content includes atleast one image, and wherein execution of the instructions performsfurther operations comprising enabling a user to view an image at ahigher resolution than a current resolution via an associated userinput, wherein in response to the user input, the display is re-renderedsuch that the image is displayed substantially across at least one of awidth and height of the display.
 96. The machine-readable medium ofclaim 95, wherein the user input comprises tapping the image.
 97. Themachine-readable medium of claim 77, wherein execution of theinstructions performs further operations comprising enabling a user toview a paragraph of the Web content at a higher resolution than acurrent resolution via an associated user input, wherein in response tothe user input, the display is re-rendered such that contentcorresponding to the selected paragraph is displayed across the display.98. The machine-readable medium of claim 97, wherein the user inputcomprises tapping the paragraph.
 99. The machine-readable medium ofclaim 97, wherein the content of the paragraph is reformatted to fitcharacteristics of the display when the display is re-rendered.
 100. Themachine-readable medium of claim 77, wherein the Web page includes text,layout attributes, and images, and wherein execution of the instructionsperforms further operations comprising: receiving content correspondingto the text and layout attributes via a first connection; and receivingcontent corresponding to at least one image via a second connection.101. The machine-readable medium of claim 77, wherein execution of theinstructions performs further operations comprising: generating adisplay list of vectors associated with the scalable vector-basedcontent; and employing the display list to re-render the display atdifferent scale factors to enable rapid zooming of the Web page. 102.The machine-readable medium of claim 77, wherein execution of theinstructions performs further operations comprising: parsing markuplanguage code corresponding to the received Web content to determine theoriginal page layout of the content on the Web page; logically groupingselected content into objects based on relative locations of the contentin the original page layout; defining a primary datum corresponding tothe original page layout; and, for each object, defining an object datumcorresponding to a layout location datum for the object's associateddisplay content; generating a vector from the primary datum to theobject datum for the object; and creating a reference that links theobject to its corresponding vector.
 103. The machine-readable medium ofclaim 102 wherein execution of the instructions performs furtheroperations comprising: generating a bounding box for each object, thebounding box representing a portion of a rendered display page occupiedby the object's associated group of content.
 104. The machine-readablemedium of claim 102, wherein execution of the instructions performsfurther operations comprising: mapping the object vectors and associatedbounding boxes to a virtual display in memory.
 105. The machine-readablemedium of claim 104, wherein execution of the instructions performsfurther operations comprising: determining a first scale factor andoffset in response to one or more corresponding user inputs defining auser-selectable zoom level and pan corresponding to a rendered displayof the Web content desired by a user; determining a virtual displaybounding box for the virtual display associated with the first scalefactor and offset; identifying object bounding boxes having at least aportion falling within the virtual display bounding box; and, for eachof such object bounding boxes, retrieving content associated with thatobject bounding box; and applying an applicable scale factor to thecontent to render the display.
 106. The machine-readable medium of claim105, wherein the virtual display has a much greater resolution than thedisplay.
 107. The machine-readable medium of claim 105, wherein thevirtual display is associated with a fixed reference frame, and thevirtual display bounding box is maintained to have a size matching theresolution of the content display area defined for the display.
 108. Themachine-readable medium of claim 105, wherein the content includes textcontent, and wherein execution of the instructions performs furtheroperations comprising scaling a scalable font to render the textcontent.
 109. The machine-readable medium of claim 105, wherein thecontent includes text content, and wherein execution of the instructionsperforms further operations comprising: determining an applicable fontsize based on the second scale factor; and selecting a correspondingbitmapped font and employing the bitmapped font to render the textcontent.
 110. The machine-readable medium of claim 77, wherein at leasta portion of the instructions comprise Java-based instructionsconfigured to be executed on a Java virtual machine.
 111. Themachine-readable medium of claim 77, wherein the plurality ofinstructions are embodied in a browser.
 112. The machine-readable mediumof claim 111, wherein the browser is configured to run on a machinecomprising a mobile device.
 113. The machine-readable medium of claim77, wherein at least a portion of the instructions are embodied as abrowser plug-in.
 114. The machine-readable medium of claim 77, whereinthe original format of the Web page defines a height and width for theWeb page, and wherein execution of the instructions performs furtheroperations comprising: determining an applicable scale factor to displayat least one of the width and height of the Web page substantiallyacross the display; and employing the scale factor that is determined asthe first scale factor.
 115. The machine-readable medium of claim 77,wherein the scalable vector-based content includes scalable text contentand in the rendered displays the scalable text content is scaled. 116.The machine-readable medium of claim 77, wherein the Web page includesone or more images, and in the rendered displays at least one image fromamong the one or more images is scaled.